package testes;

import static org.testng.AssertJUnit.assertNotNull;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import dominio.CatalogoProdutos;
import dominio.DescricaoProduto;
import excecoes.DescricaoProdutoInexistente;

public class CatalogoProdutosTest {

	private CatalogoProdutos catalogo;
	
	@BeforeMethod
	public void setUp(){
		catalogo = new CatalogoProdutos();
	}
	
	@DataProvider
	private static final Object[][] getProdutosNaoCatalogados(){
		return new String[][] { {"05"},{"06"}, {""} };
	}
	
	@Test(dataProvider = "getProdutosNaoCatalogados" ,expectedExceptions = DescricaoProdutoInexistente.class)
	public void deveGerarExcecaoProdutoInvalido(String produto) throws DescricaoProdutoInexistente {
		catalogo.getDescricaoProduto(produto);
	}

	@DataProvider
	private static final Object[][] getProdutosCatalogados(){
		return new String[][] { {"01"},{"02"},{"03"}};
	}

	@Test(dataProvider = "getProdutosCatalogados")
	public void deveBuscarOsProdutosQueForamCatalogados(String produto) throws DescricaoProdutoInexistente{;
		DescricaoProduto p = catalogo.getDescricaoProduto(produto);
		assertNotNull(p);
	}
}
